The approaches described in this section could be pursued, but are not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated herein, the approaches described in this section are not prior art to the claims in this application and are not admitted to be prior art by inclusion in this section.
When transmitting data over a Transmission Control Protocol (TCP) connection, the transmit queue(s) of a sender node may overflow and the data stored therein may be lost in the event of network congestion or malfunction, receiving node overload or malfunction, or an abnormal TCP connection close. Thus, if an application needs to reliably transmit application messages to a receiving node over a TCP connection, the application needs to provide its own mechanism for reliable delivery of the messages since TCP cannot offer such guarantees in cases when TCP connections close abnormally. However, in some operational contexts it may not be possible for an application to provide such mechanism because the application messages that need to be transmitted include monitored data. As used herein, “monitored data” refers to data which cannot be re-generated by the sender or data which if re-sent by the sender would be meaningless. Examples of monitored data include, but are not limited to, time-sensitive data associated with financial or trade transactions, real-time audio or video data generated by multi-media applications, and “bursty” data that for whatever reason cannot be re-generated.
An example operational context in which monitored data needs to be reliably transmitted over TCP connections involves the monitoring of network traffic between clients and servers involved in electronic trading of financial or other market instruments. In this operational context, a network infrastructure element or a component thereof may intercept network traffic exchanged between clients and servers and may extract therefrom application-level and/or network-level data that provides an insight into the application-level and/or the network-level performance of the end nodes that generated the network traffic. The network infrastructure element or the component thereof then need to transmit all extracted data over a TCP connection to a monitoring node, so that the monitoring node may perform an accurate and detailed analysis of the network and/or the end node performance and may detect any existing problems. Thus, in this operational context the network infrastructure element or the component thereof need to ensure that all extracted data is delivered over the TCP connection to the monitoring node even in the events of a malfunction or overload at the monitoring node, an abnormal close of the TCP connection to the monitoring node, and/or congestion or malfunction of the network connecting to the monitoring node.
Although the problem of reliably transmitting monitored data is presented above with respect to TCP connections, it is noted that this problem is not unique to TCP or to any specific operational context. Rather, this problem exists for any operational context that requires reliable transmission of monitored data over any connection-oriented transport protocol such as, for example, the Stream Control Transmission Protocol (SCTP).